package com.xhsj.user.pms.patent.domain;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.google.common.collect.Lists;
import com.xhsj.user.pms.patent.query.PatentApplyCostQuery;
import com.xhsj.user.pms.patent.query.PatentApplyFilePageQuery;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tb_pam_patent_apply_project")
public class PatentApplyProject extends Model<PatentApplyProject> {
    @TableField("id")
    private String id;
    /**
     * 交底书表主键ID
     */
    @TableField("disclosure_id")
    private String disclosureId;
    /**
     * 交底书名称
     */
    @TableField("name")
    private String name;
    /**
     * 内部编号
     */
    @TableField("num")
    private String num;
    /**
     * 申请号
     */
    @TableField("application_num")
    private String applicationNum;

    /**
     * 公开号
     */
    @TableField("public_num")
    private String publicNum;

    /**
     * 公开日
     */
    @TableField(strategy = FieldStrategy.IGNORED, value = "public_date")
    private Date publicDate;

    /**
     * 优先权号
     */
    @TableField("priority_num")
    private String priorityNum;
    /**
     * 优先权日
     */
    @TableField(strategy = FieldStrategy.IGNORED, value ="priority_date")
    private Date priorityDate;
    /**
     * 申请日期
     */
    @TableField(strategy = FieldStrategy.IGNORED, value ="apply_date")
    private Date applyDate;
    /**
     * 专利发明人
     */
    @TableField("inventor")
    private String inventor;
    /**
     * 申请人
     */
    @TableField("full_name")
    private String fullName;
    /**
     * 创建人ID
     */
    @TableField("created_by")
    private Long createdBy;
    /**
     * 立案日期 创建交底书时间
     */
    @TableField("created_date")
    private Date createdDate;
    /**
     * 修改人
     */
    @TableField("update_by")
    private Long updateBy;
    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;

    @TableField("remarks")
    private String remarks;

    @TableField("del_flag")
    private Integer delFlag;

    /**
     * 官费缴费期限
     */
    @TableField(strategy = FieldStrategy.IGNORED, value ="overseas_pay_term")
    private Date overseasPayTerm;
    /**
     * 同日申请标记
     */
    @TableField("tag1")
    private String tag1;
    /**
     * 实质审查标记
     */
    @TableField("tag2")
    private String tag2;
    /**
     * 费用减缓标记
     */
    @TableField("tag3")
    private String tag3;
    /**
     * 国外保密审查标记
     */
    @TableField("tag4")
    private String tag4;

    @TableField(exist = false)
    private List<PatentApplyCostQuery> patentApplyCostList = Lists.newArrayList();

//    @TableField(exist = false)
//    private List<PatentApplyCost> patentApplyCostList = Lists.newArrayList();
    @TableField(exist = false)
    private List<PatentApplyFilePageQuery> patentApplyFilePageList = Lists.newArrayList();
    @TableField(exist = false)
    private List<PatentFile> patentApplyFileList;
    @TableField(exist = false)
    private Patent patentList;

    private static final long serialVersionUID = 1L;

}